//
//  StatusCell.swift
//  上海微博
//
//  Created by mac on 16/5/18.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

/// 原创微博
class StatusCell: UITableViewCell {
    //类似中转站
    var statusView : StatusViewModel? {
        didSet{
           //给原创微博设置数据
            statusOriginalView.statusModel=statusView
            statusRetweetedView.statusModel=statusView
        }
    }
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: .Default, reuseIdentifier: reuseIdentifier)
        //微博的布局
        setUpUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    //MARK : 私有控件
    //原创微博
   private lazy var statusOriginalView: StatusOriginalView = StatusOriginalView()
    //转发微博
   private lazy var statusRetweetedView: StatusRetweetedView = StatusRetweetedView()
    //工具栏 toobar
   private lazy var statusToolbar:StatusToolbar = StatusToolbar()
    
}

///微博的布局
extension StatusCell {

    func setUpUI() {
        //1. 设置背景颜色
        backgroundColor = UIColor.cz_colorWithHex(0xF2F2F2)
        //2. 添加控件
        contentView.addSubview(statusToolbar)
        contentView.addSubview(statusOriginalView)
        contentView.addSubview(statusRetweetedView)
        
        //自动布局
        statusOriginalView.snp_makeConstraints { (make) in
            make.left.equalTo(contentView)
            make.right.equalTo(contentView)
            make.top.equalTo(contentView).offset(cz_statusLayout.margin)
           // make.height.equalTo(100)
            //必须设置向下的约束
            //make.bottom.equalTo(contentView)
        }
        //原创微博的布局
        statusRetweetedView.snp_makeConstraints { (make) in
            make.left.equalTo(contentView)
            make.right.equalTo(contentView)
            make.top.equalTo(statusOriginalView.snp_bottom)
            
            //make.height.equalTo(100)
        }
        //工具栏
        statusToolbar.snp_makeConstraints { (make) in
            make.left.equalTo(contentView)
            make.right.equalTo(contentView)
            make.top.equalTo(statusRetweetedView.snp_bottom)
            make.height.equalTo(36)
        }
           // - 如果自动计算行高 一定要有且仅有一个向下的约束
           // - 同时在cell内部 动态修改不同的行高时
        // 从上向下根据约束计算行高，当监测到底部约束，告诉系统行高计算完毕，并且返回行高，tableView 就可以更新 contentSize
        contentView.snp_makeConstraints { (make) in
            make.left.equalTo(self)
            make.right.equalTo(self)
            make.top.equalTo(self)
           //必须设置向下的约束
            make.bottom.equalTo(statusToolbar)
        }

        //表格性能优化 -- 栅格化, 异步绘制
        //异步绘制
        self.layer.drawsAsynchronously=true
        //栅格化 -- 能把cell的图层内容生成一张图像并缓存 在滚动的时候 不再生成cell的内容
        self.layer.shouldRasterize=true
        //设置栅格化必须要设置分辨率
        self.layer.rasterizationScale=UIScreen.mainScreen().scale
    }
   
}